package com.monlyu.util;

import java.util.regex.Pattern;

/**
 * 正则表达式的一些操作
 * 
 * @author monlyu
 */
public class RegexUtil {

	/**
	 * 判断是否匹配日期
	 * 
	 * @since 2009-12-28
	 */
	public static boolean isDate(String input) {
		if (StringUtil.isEmpty(input)) {
			return false;
		}
		return input.matches("\\d{1,4}-\\d{1,2}-\\d{1,2}");
	}

	/**
	 * 判断是否匹配日期时间
	 * 
	 * @since 2009-12-28
	 */
	public static boolean isDateTime(String input) {
		if (StringUtil.isEmpty(input)) {
			return false;
		}
		return input.matches("\\d{1,4}-\\d{1,2}-\\d{1,2}\\s\\d{1,2}:\\d{1,2}");
	}

	/**
	 * 判断是否为boolean类型
	 * 
	 * @since 2010-1-14
	 */
	public static boolean isBol(String bool) {
		return bool.equalsIgnoreCase("true") || bool.equalsIgnoreCase("false");
	}

	/**
	 * 判断是否为IP地址
	 * 
	 * @param str
	 *            IP字符串
	 * @author monlyu
	 * @since 2010-1-27
	 */
	public static Boolean isIpAddress(String str) {
		String regex = "(((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))[.](((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))[.](((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))[.](((2[0-4]\\d)|(25[0-5]))|(1\\d{2})|([1-9]\\d)|(\\d))";
		Pattern p = Pattern.compile(regex);
		return p.matcher(str).matches();
	}
}
